[INFO] fetching crate siquery 1.2.0...
[INFO] checking siquery-1.2.0 against master#af3c6e733a40e671550e0f0f5aeecaa13772ba56 for pr-74989
[INFO] extracting crate siquery 1.2.0 into /workspace/builds/worker-7/source
[INFO] validating manifest of crates.io crate siquery 1.2.0 on toolchain af3c6e733a40e671550e0f0f5aeecaa13772ba56
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+af3c6e733a40e671550e0f0f5aeecaa13772ba56" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] started tweaking crates.io crate siquery 1.2.0
[INFO] finished tweaking crates.io crate siquery 1.2.0
[INFO] tweaked toml for crates.io crate siquery 1.2.0 written to /workspace/builds/worker-7/source/Cargo.toml
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+af3c6e733a40e671550e0f0f5aeecaa13772ba56" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+af3c6e733a40e671550e0f0f5aeecaa13772ba56" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+af3c6e733a40e671550e0f0f5aeecaa13772ba56" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] 7fd92181bc512d51a43a35818aa707c16ee4e7fae4d88a5479c56bd451f39e6c
[INFO] running `Command { std: "docker" "start" "-a" "7fd92181bc512d51a43a35818aa707c16ee4e7fae4d88a5479c56bd451f39e6c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7fd92181bc512d51a43a35818aa707c16ee4e7fae4d88a5479c56bd451f39e6c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7fd92181bc512d51a43a35818aa707c16ee4e7fae4d88a5479c56bd451f39e6c", kill_on_drop: false }`
[INFO] [stdout] 7fd92181bc512d51a43a35818aa707c16ee4e7fae4d88a5479c56bd451f39e6c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+af3c6e733a40e671550e0f0f5aeecaa13772ba56" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] bebd491ef1c8c354b50ff21b5fb2e94da248e3f11fef89089958976c158f3741
[INFO] running `Command { std: "docker" "start" "-a" "bebd491ef1c8c354b50ff21b5fb2e94da248e3f11fef89089958976c158f3741", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]    Compiling memchr v2.3.3
[INFO] [stderr]     Checking lazy_static v1.4.0
[INFO] [stderr]    Compiling bitflags v1.2.1
[INFO] [stderr]     Checking cfg-if v0.1.10
[INFO] [stderr]    Compiling winapi-build v0.1.1
[INFO] [stderr]    Compiling nix v0.11.1
[INFO] [stderr]     Checking winapi v0.2.8
[INFO] [stderr]     Checking itoa v0.4.6
[INFO] [stderr]     Checking void v1.0.2
[INFO] [stderr]     Checking term v0.4.6
[INFO] [stderr]     Checking encode_unicode v0.3.6
[INFO] [stderr]     Checking lazy_static v0.2.11
[INFO] [stderr]    Compiling siquery v1.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking horrorshow v0.6.6
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]  --> build.rs:3:33
[INFO] [stdout]   |
[INFO] [stdout] 3 | const WINDOWS_TABLES: &'static [(&'static str)] = &[
[INFO] [stdout]   |                                 ^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling libsqlite3-sys v0.9.3
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> build.rs:44:31
[INFO] [stdout]    |
[INFO] [stdout] 44 | const LINUX_TABLES: &'static [(&'static str)] = &[
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> build.rs:64:31
[INFO] [stdout]    |
[INFO] [stdout] 64 | const MACOS_TABLES: &'static [(&'static str)] = &[
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> build.rs:82:38
[INFO] [stdout]    |
[INFO] [stdout] 82 | fn emit_features(features: &'static [(&'static str)]) {
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking unicode-bidi v0.3.4
[INFO] [stderr]     Checking lru-cache v0.1.2
[INFO] [stderr]     Checking heck v0.3.1
[INFO] [stderr]     Checking serde v1.0.116
[INFO] [stderr]     Checking thread_local v1.0.1
[INFO] [stderr]     Checking backtrace v0.3.50
[INFO] [stderr]     Checking errno v0.2.6
[INFO] [stderr]     Checking regex-automata v0.1.9
[INFO] [stderr]    Compiling kernel32-sys v0.2.2
[INFO] [stderr]     Checking csv v0.15.0
[INFO] [stderr]     Checking idna v0.1.5
[INFO] [stderr]    Compiling syn v1.0.40
[INFO] [stderr]     Checking chrono v0.4.15
[INFO] [stdout] warning: 4 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking sysconf v0.3.4
[INFO] [stderr]     Checking prettytable-rs v0.6.7
[INFO] [stderr]     Checking aho-corasick v0.7.13
[INFO] [stderr]     Checking csv-core v0.1.10
[INFO] [stderr]     Checking url v1.7.2
[INFO] [stderr]     Checking proxy_cfg v0.1.0
[INFO] [stderr]     Checking regex v1.3.9
[INFO] [stderr]    Compiling synstructure v0.12.4
[INFO] [stderr]     Checking bstr v0.2.13
[INFO] [stderr]     Checking serde_json v1.0.57
[INFO] [stderr]    Compiling failure_derive v0.1.8
[INFO] [stderr]    Compiling serde_derive v1.0.116
[INFO] [stderr]     Checking csv v1.1.3
[INFO] [stderr]     Checking failure v0.1.8
[INFO] [stderr]     Checking treexml v0.7.0
[INFO] [stderr]     Checking rusqlite v0.14.0
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/vtab.rs:31:19
[INFO] [stdout]    |
[INFO] [stdout] 31 |         let arg = try!(str::from_utf8(c_slice)).trim();
[INFO] [stdout]    |                   ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/vtab.rs:65:34
[INFO] [stdout]    |
[INFO] [stdout] 65 |             let (param, value) = try!(SiqueryTab::parameter(c_slice));
[INFO] [stdout]    |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/common/hosts.rs:30:37
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn get_specific_ex(reader: &EtcHostsIface) -> Vec<EtcHosts> {
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^ help: use `dyn`: `dyn EtcHostsIface`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/common/hosts.rs:65:25
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let reader: Box<EtcHostsIface> = Box::new(EtcHostsReader{});
[INFO] [stdout]    |                         ^^^^^^^^^^^^^ help: use `dyn`: `dyn EtcHostsIface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/common/hosts.rs:82:25
[INFO] [stdout]    |
[INFO] [stdout] 82 |         let reader: Box<EtcHostsIface> = Box::new(EtcHostsTest {});
[INFO] [stdout]    |                         ^^^^^^^^^^^^^ help: use `dyn`: `dyn EtcHostsIface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/common/services.rs:35:37
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn get_specific_ex(reader: &EtcServicesIface) -> Vec<EtcServices> {
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn EtcServicesIface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/common/services.rs:109:25
[INFO] [stdout]     |
[INFO] [stdout] 109 |         let reader: Box<EtcServicesIface> = Box::new(EtcServicesReader{});
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn EtcServicesIface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/common/services.rs:126:25
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let reader: Box<EtcServicesIface> = Box::new(EtcServicesTest {});
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn EtcServicesIface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/common/protocols.rs:34:37
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn get_specific_ex(reader: &EtcProtocolsIface) -> Vec<EtcProtocols> {
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn EtcProtocolsIface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/common/protocols.rs:86:25
[INFO] [stdout]    |
[INFO] [stdout] 86 |         let reader: Box<EtcProtocolsIface> = Box::new(EtcProtocolsReader{});
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn EtcProtocolsIface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/common/protocols.rs:103:25
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let reader: Box<EtcProtocolsIface> = Box::new(EtcProtocolsTest {});
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn EtcProtocolsIface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/printer.rs:39:69
[INFO] [stdout]    |
[INFO] [stdout] 39 |                 wtr.write_record(row).expect("could not write row");;
[INFO] [stdout]    |                                                                     ^ help: remove this semicolon
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/vtab.rs:31:19
[INFO] [stdout]    |
[INFO] [stdout] 31 |         let arg = try!(str::from_utf8(c_slice)).trim();
[INFO] [stdout]    |                   ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/vtab.rs:65:34
[INFO] [stdout]    |
[INFO] [stdout] 65 |             let (param, value) = try!(SiqueryTab::parameter(c_slice));
[INFO] [stdout]    |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/common/hosts.rs:30:37
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn get_specific_ex(reader: &EtcHostsIface) -> Vec<EtcHosts> {
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^ help: use `dyn`: `dyn EtcHostsIface`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/common/hosts.rs:65:25
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let reader: Box<EtcHostsIface> = Box::new(EtcHostsReader{});
[INFO] [stdout]    |                         ^^^^^^^^^^^^^ help: use `dyn`: `dyn EtcHostsIface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/common/services.rs:35:37
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn get_specific_ex(reader: &EtcServicesIface) -> Vec<EtcServices> {
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn EtcServicesIface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/common/services.rs:109:25
[INFO] [stdout]     |
[INFO] [stdout] 109 |         let reader: Box<EtcServicesIface> = Box::new(EtcServicesReader{});
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn EtcServicesIface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/common/protocols.rs:34:37
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn get_specific_ex(reader: &EtcProtocolsIface) -> Vec<EtcProtocols> {
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn EtcProtocolsIface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/common/protocols.rs:86:25
[INFO] [stdout]    |
[INFO] [stdout] 86 |         let reader: Box<EtcProtocolsIface> = Box::new(EtcProtocolsReader{});
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn EtcProtocolsIface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/printer.rs:39:69
[INFO] [stdout]    |
[INFO] [stdout] 39 |                 wtr.write_record(row).expect("could not write row");;
[INFO] [stdout]    |                                                                     ^ help: remove this semicolon
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/linux/os_version.rs:38:44
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub(crate) fn get_specific_ex(reader: &OsVersionIface) -> Vec<OsVersion> {
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^ help: use `dyn`: `dyn OsVersionIface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/linux/os_version.rs:87:25
[INFO] [stdout]    |
[INFO] [stdout] 87 |         let reader: Box<OsVersionIface> = Box::new(Reader::new());
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^ help: use `dyn`: `dyn OsVersionIface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/linux/os_version.rs:110:25
[INFO] [stdout]     |
[INFO] [stdout] 110 |         let reader: Box<OsVersionIface> = Box::new(Test{});
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^ help: use `dyn`: `dyn OsVersionIface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/linux/system_info.rs:58:37
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn get_specific_ex(reader: &SystemInfoDataIface) -> Vec<SystemInfoData> {
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn SystemInfoDataIface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/linux/system_info.rs:83:41
[INFO] [stdout]    |
[INFO] [stdout] 83 |     fn get_cpu_info(&mut self, reader: &SystemInfoDataIface) -> Option<CpuInfo> {
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn SystemInfoDataIface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/linux/system_info.rs:94:25
[INFO] [stdout]    |
[INFO] [stdout] 94 |         let reader: Box<SystemInfoDataIface> = Box::new(Reader{});
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn SystemInfoDataIface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/linux/system_info.rs:126:25
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let reader: Box<SystemInfoDataIface> = Box::new(Test{});
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn SystemInfoDataIface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json`
[INFO] [stdout]  --> src/linux/proxies.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use serde_json;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/linux/os_version.rs:38:44
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub(crate) fn get_specific_ex(reader: &OsVersionIface) -> Vec<OsVersion> {
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^ help: use `dyn`: `dyn OsVersionIface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/linux/os_version.rs:87:25
[INFO] [stdout]    |
[INFO] [stdout] 87 |         let reader: Box<OsVersionIface> = Box::new(Reader::new());
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^ help: use `dyn`: `dyn OsVersionIface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/linux/system_info.rs:58:37
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn get_specific_ex(reader: &SystemInfoDataIface) -> Vec<SystemInfoData> {
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn SystemInfoDataIface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/linux/system_info.rs:83:41
[INFO] [stdout]    |
[INFO] [stdout] 83 |     fn get_cpu_info(&mut self, reader: &SystemInfoDataIface) -> Option<CpuInfo> {
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn SystemInfoDataIface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/linux/system_info.rs:94:25
[INFO] [stdout]    |
[INFO] [stdout] 94 |         let reader: Box<SystemInfoDataIface> = Box::new(Reader{});
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn SystemInfoDataIface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json`
[INFO] [stdout]  --> src/linux/proxies.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use serde_json;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]   --> src/linux/interface_details.rs:63:48
[INFO] [stdout]    |
[INFO] [stdout] 63 |         let mut addrs: *mut ifaddrs = unsafe { mem::uninitialized() };
[INFO] [stdout]    |                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]   --> src/linux/interface_details.rs:63:48
[INFO] [stdout]    |
[INFO] [stdout] 63 |         let mut addrs: *mut ifaddrs = unsafe { mem::uninitialized() };
[INFO] [stdout]    |                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `core::str::<impl str>::trim_left_matches`: superseded by `trim_start_matches`
[INFO] [stdout]   --> src/linux/system_info.rs:67:42
[INFO] [stdout]    |
[INFO] [stdout] 67 |                          .and_then(|v| v.trim_left_matches(' ').split(' ').next())
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_start_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]   --> src/linux/proxies.rs:13:45
[INFO] [stdout]    |
[INFO] [stdout] 13 |                         url:url.to_string().trim_right_matches('/').to_string(),
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `core::str::<impl str>::trim_left_matches`: superseded by `trim_start_matches`
[INFO] [stdout]   --> src/linux/system_info.rs:67:42
[INFO] [stdout]    |
[INFO] [stdout] 67 |                          .and_then(|v| v.trim_left_matches(' ').split(' ').next())
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_start_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]   --> src/linux/proxies.rs:13:45
[INFO] [stdout]    |
[INFO] [stdout] 13 |                         url:url.to_string().trim_right_matches('/').to_string(),
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/linux/process_open_sockets.rs:95:37
[INFO] [stdout]    |
[INFO] [stdout] 95 | ...                   let mut local_address: String;
[INFO] [stdout]    |                           ----^^^^^^^^^^^^^
[INFO] [stdout]    |                           |
[INFO] [stdout]    |                           help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/linux/process_open_sockets.rs:137:37
[INFO] [stdout]     |
[INFO] [stdout] 137 | ...                   let mut remote_address: String;
[INFO] [stdout]     |                           ----^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/linux/process_open_sockets.rs:268:17
[INFO] [stdout]     |
[INFO] [stdout] 268 |             let mut net_ns : String;
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/linux/process_open_sockets.rs:298:25
[INFO] [stdout]     |
[INFO] [stdout] 298 |                     let mut state_string : String;
[INFO] [stdout]     |                         ----^^^^^^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/linux/process_open_sockets.rs:333:21
[INFO] [stdout]     |
[INFO] [stdout] 333 |                 let mut state_string : String;
[INFO] [stdout]     |                     ----^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/linux/groups.rs:22:51
[INFO] [stdout]    |
[INFO] [stdout] 22 |             let groupname = unsafe{CStr::from_ptr(unsafe {*group_p}.gr_name).to_str().unwrap_or("")};
[INFO] [stdout]    |                             ------                ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             because it's nested under this `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 24 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/linux/process_open_sockets.rs:95:37
[INFO] [stdout]    |
[INFO] [stdout] 95 | ...                   let mut local_address: String;
[INFO] [stdout]    |                           ----^^^^^^^^^^^^^
[INFO] [stdout]    |                           |
[INFO] [stdout]    |                           help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/linux/process_open_sockets.rs:137:37
[INFO] [stdout]     |
[INFO] [stdout] 137 | ...                   let mut remote_address: String;
[INFO] [stdout]     |                           ----^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/linux/process_open_sockets.rs:268:17
[INFO] [stdout]     |
[INFO] [stdout] 268 |             let mut net_ns : String;
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/linux/process_open_sockets.rs:298:25
[INFO] [stdout]     |
[INFO] [stdout] 298 |                     let mut state_string : String;
[INFO] [stdout]     |                         ----^^^^^^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/linux/process_open_sockets.rs:333:21
[INFO] [stdout]     |
[INFO] [stdout] 333 |                 let mut state_string : String;
[INFO] [stdout]     |                     ----^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/linux/groups.rs:22:51
[INFO] [stdout]    |
[INFO] [stdout] 22 |             let groupname = unsafe{CStr::from_ptr(unsafe {*group_p}.gr_name).to_str().unwrap_or("")};
[INFO] [stdout]    |                             ------                ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             because it's nested under this `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 29 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 50.08s
[INFO] running `Command { std: "docker" "inspect" "bebd491ef1c8c354b50ff21b5fb2e94da248e3f11fef89089958976c158f3741", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bebd491ef1c8c354b50ff21b5fb2e94da248e3f11fef89089958976c158f3741", kill_on_drop: false }`
[INFO] [stdout] bebd491ef1c8c354b50ff21b5fb2e94da248e3f11fef89089958976c158f3741
